/**
 * Input
 *      aaabbadddffc
 * ==> a_3_b_2_a_1_d_3_f_2_c_1
 * 
 * 思路：
 *      当前字符 
 *      当前字符的个数
 *      
 *      遍历时 如果当前字符与cur相同就 count++
 *      cur = xx
 *      不同则 cur = ""。
 *              count = 1;
 * 
 */
/*
test('aaabbadddffc')
 function test(str){

    let cur = null;
    let count =0;
    let res = "";
    for(let i=0;i<str.length;i++){
        if(str[i]===cur){
            count ++;
        }else {
            if(cur!==null){
                res = res+cur+"_"+count+"_";
            }
            cur = str[i];
            count = 1;
        }
    }
    if(cur!=null){
        res = res+cur+"_"+count;
    }
    console.log(res);
    return res;
 }
*/
 /**
  * @desc 扩展题
        反向：给定统计字符串cstr，index整数
            return 该index下的原始字符
        如 a_1_b_100 1
        ==> a
           a_1_b_100 50
        ===> b     
  */

 let res = test('a_3_b_2_a_1_d_3_f_2_c_1',6);
  function test(cstr,index){
    if(cstr===null||index<=0){
        return null;
    }
    let arr = cstr.split("_");
    let sum = 0;
    for(let i=0;i<arr.length;i++){
        let num = arr[i] -'0';
        let nextNum = arr[i+2];
        if(!isNaN(num)){
            sum += num;
            let nextSum  =  Number(sum) + Number(nextNum);
            if(sum===index){
                return arr[i-1];
            }
            if(sum<index&&(nextSum>index)){
                return arr[i+1];
            }
        }
    }
    if(sum<index){
        return null;
    }
  }